#pragma once

class HorseHasher;



class Horse
{
	size_t m_x;
	size_t m_y;

public:
	unsigned int getX() const {return m_x;}
	unsigned int getY() const {return m_y;}

	//Razeni nejprv dle osy y od vetsiho k mensimu
	//potom podle x od mensiho k vetsimu
	//To proto,ze [0,0] je vlevo dole,ale vypisovat se bude zleva doprava a shora dolu!
	bool operator<(const Horse &h) const {
		if (this->m_y == h.getY())
		{
			return this->m_x < h.getX();
		}
		return this->m_y < h.getY();
	}

	bool operator==(const Horse &h) const {
		return m_x == h.getX() && m_y == h.getY();
	}

	friend std::ostream& operator<< (std::ostream &os, const Horse &h){
		os << '[' << h.m_x << ':' << h.m_y << ']';
		return os;
	}

	Horse(size_t x, size_t y):
		m_x(x),m_y(y){}
};
